/*
 Автор: Швейкин Евгений Юрьевич
 Имя модуля: mdio


 Функциональное описание:     
    Модуль выполняет управление трансивером по mdio.
    
*/
//--------------------------------------------------------------------------------------------------
    
// *********************** НАЧАЛО МОДУЛЯ ***********************************************************
module mdio_reg0
(
    input  logic            reset_n,
    input  logic            clk,

    output  logic [4:0]      phy_addr,
    output  logic [4:0]      reg_addr,
    output  logic [15:0]     data_reg
);


//  ********************* КОНСТАНТЫ ****************************************************************

//  ********************* ТИПЫ ДАННЫХ **************************************************************
    typedef struct packed
    {
        logic           reset;
        logic           loopback;
        logic           speed0;
        logic           an_ena;
        logic           power_down;
        logic           isolate;
        logic           restart;
        logic           duplex_mode;
        logic           col_test;
        logic           speed1;
        logic [5:0]     res;

    } reg0_t;
    
//  ********************* ПЕРЕМЕННЫЕ ***************************************************************

    reg0_t      reg0;

// ********************* INITIAL *******************************************************************

//  ********************* ФУНКЦИИ ******************************************************************

//  ********************* ASSIGN *******************************************************************
    assign data_reg = reg0;

// ********************* ПРОЦЕССЫ ******************************************************************
    
    // Формируем выходную частоту последовательного интенрфейса
    always_ff @(posedge clk)       
    begin  
        phy_addr    <= 5'b10000;
        reg_addr    <= 5'b00000;
        
        reg0.reset          <= 1'b0;
        reg0.loopback       <= 1'b0;
        reg0.speed0         <= 1'b0;
        reg0.an_ena         <= 1'b1;
        reg0.power_down     <= 1'b0;
        reg0.isolate        <= 1'b0;
        reg0.restart        <= 1'b0;
        reg0.duplex_mode    <= 1'b0;
        reg0.col_test       <= 1'b0;
        reg0.speed1         <= 1'b1;
        reg0.res            <= 1'b0;
endmodule 
